//
//  EmoticonPackage.swift
//  表情键盘
//
//  Created by 晁岳山 on 15/10/24.
//  Copyright © 2015年 晁岳山. All rights reserved.
//

import UIKit
/// 表情模型
class EmoticonPackage: NSObject {
    /// 表情包的路径
    var id: String?
    /// 表情包的名称
    var group_name_cn: String?
    /// 表情数组 保证数组在使用的时候 一定存在  能够向数组中添加数据
    lazy var emoticons = [Emoticon]()
    //MARK - 构造函数
 
    init(dict: [String: AnyObject]) {
        /// 这儿不用kvc的原因？？？
        super.init()
        id = dict["id"] as? String
        group_name_cn = dict["group_name_cn"] as? String
        //对数组进行处理
        if let array = dict["emoticons"] as? [[String: AnyObject]] {
            var index = 0
            for var d in array {
                index++
                //拼接路径  获得图片的部分路径
                if let png = d["png"] as? String, dir = id {
                    d["png"] = dir + "/" + png
                }
                emoticons.append(Emoticon(dict: d))
                if index == 20 {
                    emoticons.append(Emoticon(isRemoved: true))
                    index = 0
                }
            }
        }
        //MARK: - 添加空白按钮
        appendEmptyEmoticon()
    }
    func appendEmptyEmoticon() {
        let count = emoticons.count % 21
        if count == 0 && emoticons.count > 0 {
            return
        }
        //添加空白表情
        for _ in count..<20 {
            emoticons.append(Emoticon(isEmpty: true))
            
        }
        //在末尾添加删除按钮
        emoticons.append(Emoticon(isRemoved: true))
    }
    override var description: String {
        let keys = ["id", "group_name_cn", "emoticons"]
        return dictionaryWithValuesForKeys(keys).description
    }

    
}
